grubbs.test(AS$gvalue)
# COT
COTTempF <- factor(COT$gtemp)
COTPopF <- factor(COT$gpop)
JJCOT<-lmer(gvalue ~ COTTempF*COTPopF+gmass + (1|COTTempF/COTPopF), na.action=na.exclude, COT)
shapiro.test(resid(JJCOT))
# Shapiro-Wilk normality test
# data:  resid(JJCOT)
# W = 0.96331, p-value = 0.217
leveneTest(gvalue~ interaction(COTTempF,COTPopF), COT)
# Levene's Test for Homogeneity of Variance (center = median)
#       Df F value  Pr(>F)
# group  4    0.65 0.6307
#       35
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1JJCOT
grubbs.test(COT$gvalue)
JJ2<-lmer(gvalue ~ GTempF*GMetricF*GPopF+gmass + (1|gID) + (gmass|GMetricF), na.action=na.exclude, DTA)
r.squaredGLMM(JJ2)
library(lme4)
library(multcomp)
library(languageR)
library(LMERConvenienceFunctions)
library(emmeans)
library(MuMIn)
library(EnvStats)
library(broom.mixed)
library(lmerTest)
library(car)
library(outliers)
library(effectsize)
library(rcompanion)
library(MASS)
library(r2glmm)
library(pracma)
DTA <- read.csv(choose.files()) #Select the file named ‘raw stats Ghanam div -Nov2023 -mass inclusion.csv’
names(DTA)
# Set factors and parameters
GTempF <- factor(DTA$gtemp)
GPopF <- factor(DTA$gpop)
GMetricF <- factor(DTA$gmetric)
options(max.print = .Machine$integer.max)
# Select the best model
JJ1<-lmer(gvalue ~ GTempF*GMetricF*GPopF+gmass + (1|gID), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 4 columns / coefficients
JJ2<-lmer(gvalue ~ GTempF*GMetricF*GPopF+gmass + (1|gID) + (gmass|GMetricF), na.action=na.exclude, DTA)
# test the models using anova
anova(JJ1,JJ2)
# CHECK ASSUMPTIONS FOR EACH METRIC WITHIN BEST MODEL:
SMR<-DTA[DTA[,"gmetric"]=="rawSMR",]
MMR<-DTA[DTA[,"gmetric"]=="rawMMR",]
AS<-DTA[DTA[,"gmetric"]=="rawasc",]
COT<-DTA[DTA[,"gmetric"]=="rawCOT",]
# SMR
SMRTempF <- factor(SMR$gtemp)
SMRPopF <- factor(SMR$gpop)
JJSMR<-lmer(gvalue ~ SMRTempF*SMRPopF+gmass + (1|SMRTempF/SMRPopF), na.action=na.exclude, SMR)
anova(JJSMR)
shapiro.test(resid(JJSMR))
# Shapiro-Wilk normality test
# data:  resid(JJSMR)
# W = 0.97836, p-value = 0.6289
leveneTest(gvalue~ interaction(SMRTempF,SMRPopF), SMR)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value  Pr(>F)
# group  4  1.1927 0.3312
# 35
grubbs.test(SMR$gvalue)
#  MMR
MMRTempF <- factor(MMR$gtemp)
MMRPopF <- factor(MMR$gpop)
JJMMR<-lmer(gvalue ~ MMRTempF*MMRPopF+gmass + (1|MMRTempF/MMRPopF), na.action=na.exclude, MMR)
anova(JJMMR)
shapiro.test(resid(JJMMR))
#	Shapiro-Wilk normality test
# data:  resid(JJMMR)
# W = 0.98437, p-value = 0.8447
leveneTest(gvalue~ interaction(MMRTempF,MMRPopF), MMR)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)
# group  4  1.6028 0.1954
# 35
grubbs.test(MMR$gvalue)
# AS
ASTempF <- factor(AS$gtemp)
ASPopF <- factor(AS$gpop)
JJAS<-lmer(gvalue ~ ASTempF*ASPopF+gmass + (1|ASTempF/ASPopF), na.action=na.exclude, AS)
anova(JJAS)
shapiro.test(resid(JJAS))
#	Shapiro-Wilk normality test
# data:  resid(JJAS)
# W = 0.98591, p-value = 0.8982
leveneTest(gvalue ~ interaction(ASTempF,ASPopF), AS)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)
# group  4  1.3752 0.2631
# 34
grubbs.test(AS$gvalue)
# COT
COTTempF <- factor(COT$gtemp)
COTPopF <- factor(COT$gpop)
JJCOT<-lmer(gvalue ~ COTTempF*COTPopF+gmass + (1|COTTempF/COTPopF), na.action=na.exclude, COT)
shapiro.test(resid(JJCOT))
# Shapiro-Wilk normality test
# data:  resid(JJCOT)
# W = 0.96331, p-value = 0.217
leveneTest(gvalue~ interaction(COTTempF,COTPopF), COT)
# Levene's Test for Homogeneity of Variance (center = median)
#       Df F value  Pr(>F)
# group  4    0.65 0.6307
#       35
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1JJCOT
grubbs.test(COT$gvalue)
JJ2<-lmer(gvalue ~ GTempF*GMetricF*GPopF+gmass + (1|gID) + (gmass|GMetricF), na.action=na.exclude, DTA)
r.squaredGLMM(JJ2)
r2beta(JJ2, method = "nsj")
epsilon_squared(JJ2)
# RUN MODEL:
anova(JJ2)
summary(JJ2)
emmeans(JJ2, pairwise ~ GTempF*GPopF, adjust=c("none"))
emmeans(JJ2, pairwise ~ GTempF*GMetricF, adjust=c("none"))
emmeans(JJ2, pairwise ~ GTempF*GMetricF*GPopF, adjust=c("none"))
# SWIMMING
# This section deals with the swimming parameters of
# Critical swimming speed (UC),
# Burst-Coast swimming speed (UB),
# and Optimal swimming speed (UO)
names(DTA)
# Set factors and parameters
GTempF2 <- factor(DTA$gtemp1)
GPopF2 <- factor(DTA$gpop1)
GMetricF2 <- factor(DTA$gmetric1)
# Select the best model
JJ3 <-lmer(gvalue1 ~ GTempF2*GMetricF2*GPopF2+gsize + (1|gID1), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 3 columns / coefficients
JJ4 <-lmer(gvalue1 ~ GTempF2*GMetricF2*GPopF2+gsize + (1|gID1) + (gsize|GMetricF2), na.action=na.exclude, DTA)
# test the models using anova
anova(JJ3,JJ4)
# CHECK ASSUMPTIONS FOR EACH METRIC WITHIN BEST MODEL:
UC<-DTA[DTA[,"gmetric1"]=="ucrit",]
UB<-DTA[DTA[,"gmetric1"]=="uburst",]
UO<-DTA[DTA[,"gmetric1"]=="uopt",]
# Ucrit
UCPopF <- factor(UC$gpop1)
UCTempF <- factor(UC$gtemp1)
JJUC<-lmer(gvalue1 ~ UCTempF*UCPopF+gsize + (1|UCTempF/UCPopF), na.action=na.exclude, UC)
anova(JJUC)
shapiro.test(resid(JJUC))
#	Shapiro-Wilk normality test
# data:  resid(JJUC)
# W = 0.9726, p-value = 0.4497
leveneTest(gvalue1 ~ interaction(UCTempF,UCPopF), UC)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)
# group  4  2.5057 0.06029.
# 34
grubbs.test(UC$gvalue1)
# Uburst
UBPopF <- factor(UB$gpop1)
UBTempF <- factor(UB$gtemp1)
JJUB<-lmer(gvalue1 ~ UBTempF*UBPopF+gsize + (1|UBTempF/UBPopF), na.action=na.exclude, UB)
anova(JJUB)
shapiro.test(resid(JJUB))
#	Shapiro-Wilk normality test
# data:  resid(JJUB)
# W = 0.98141, p-value = 0.7671
leveneTest(gvalue1 ~ interaction(UBTempF,UBPopF), UB)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)
# group  4  1.8963 0.1344
# 33
grubbs.test(UB$gvalue1)
# Uopt
UOPopF <- factor(UO$gpop1)
UOTempF <- factor(UO$gtemp1)
JJUO<-lmer(gvalue1 ~ UOTempF*UOPopF+gsize + (1|UOTempF/UOPopF), na.action=na.exclude, UO)
anova(JJUO)
shapiro.test(resid(JJUO))
#	Shapiro-Wilk normality test
# data:  resid(JJUO)
# W = 0.94921, p-value = 0.07729
leveneTest(gvalue1~ interaction(UOTempF,UOPopF), UO)
# Levene's Test for Homogeneity of Variance (center = median)
# Df F value Pr(>F)
# group  4  1.1186 0.3639
# 34
grubbs.test(UO$gvalue1)
r.squaredGLMM(JJ4)
r2beta(JJ4, method = "nsj")
epsilon_squared(JJ4)
anova(JJ4)
summary(JJ4)
emmeans(JJ4, pairwise ~ GTempF2*GMetricF2*GPopF2, adjust=c("none"))
# Correction for Type II error due to multiple planned comparisons:
pvalue<-c(0.8647, 0.0001, 0.1099, 0.0052, 0.0001, 0.0654, 0.0020, 0.0004, 0.1098, 0.0865, 0.8203, 0.0001, 0.0742, 0.0005, 0.0001, 0.0382, 0.0001, 0.0001, 0.0765, 0.0188, 0.6789, 0.0120, 0.2554, 0.0143, 0.0299, 0.4476, 0.0227, 0.1182, 0.9205, 0.0872)
sorted.pvalue<-sort(pvalue)
sorted.pvalue
j.alpha<-(1:30)*(.05/30)
j.alpha
diff<-sorted.pvalue-j.alpha
diff
neg.diff<-diff[diff<0]
pos.diff<-neg.diff[length(neg.diff)]
index<-diff==pos.diff
index
p.cutoff<-sorted.pvalue[index]
p.cutoff
# load data
Ghanam_data <- read.csv(choose.files()) # Choose file 'Kinematics_full -Dec2023.csv'
names(Ghanam_data)
# specify factors and table
Ghanam_data$TemperatureF <- as.factor(Ghanam_data$Temperature)
Ghanam_data$AreaF <- as.factor(Ghanam_data$Area)
# set factors and parameters
Ghanam_data$BLsF <- as.factor(Ghanam_data$BLs)
table(Ghanam_data$BLs)
# Focus on data >2.0 bls
Ghanam_data_trim1 <- subset(Ghanam_data, Ghanam_data$BLs > 1.2)
# Focus on data >1.2 bls
Ghanam_data_trim1 <- subset(Ghanam_data, Ghanam_data$BLs > 1.2)
table(Ghanam_data_trim1$BLs)
# BEST MODEL SELECTION
Final_Amp_model <- lmer(Amp.m. ~ TemperatureF * AreaF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
Final_Amp_model1 <- lmer(Amp.m. ~ TemperatureF * AreaF * BLs + SL + (1 | ID:AreaF:TemperatureF), data = Ghanam_data_trim1)
anova(Final_Amp_model,Final_Amp_model1)
# Check for assumptions:
shapiro.test(resid(Final_Amp_model))
# Shapiro-Wilk normality test
# data:  resid(Final_Amp_model)
# W = 0.97986, p-value = 0.02944
leveneTest(Amp.m. ~ interaction(TemperatureF, AreaF, BLs), data = Ghanam_data_trim1)
# Levene's Test for Homogeneity of Variance (center = median)
#        Df F value Pr(>F)
# group  39   0.608 0.9605
# 107
grubbs.test(Ghanam_data$Amp.m.)
Final_Amp_model <- lmer(Amp.m.^1.4 ~ TemperatureF * AreaF * BLs + TL + (1 | ID), data = Ghanam_data_trim1)
Final_Amp_model <- lmer(Amp.m.^1.4 ~ TemperatureF * AreaF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
shapiro.test(resid(Final_Amp_model))
# Shapiro-Wilk normality test
# data:  resid(Final_Amp_model)
# W = 0.9885, p-value = 0.2677
leveneTest(Amp.m.^1.4 ~ interaction(TemperatureF, AreaF, BLs), data = Ghanam_data_trim1)
# MODEL FIT:
r.squaredGLMM(Final_Amp_model)
r2beta(Final_Amp_model, method = "nsj")
epsilon_squared(Final_Amp_model)
anova(Final_Amp_model)
summary(Final_Amp_model)
# SLOPES MODEL:
ls_trend <- lstrends(Final_Amp_model, ~ TemperatureF * AreaF, var = "BLs")
# run model:
summary(ls_trend, infer=TRUE)
# run pairwise comparison to check for differences among AG and GO fishes
pairs(ls_trend, adjust = 'fdr')
# Pooled model **not included in manuscript**
Final_Amp_model1 <- lmer(Amp.m.^1.5 ~ TemperatureF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
# Check for pooled model assumptions:
shapiro.test(resid(Final_Amp_model1))
#	Shapiro-Wilk normality test
# data:  resid(Final_Amp_model1)
# W = 0.98763, p-value = 0.2158
leveneTest(Amp.m.^1.5 ~ interaction(TemperatureF, BLs), data = Ghanam_data_trim1)
#Pooled model fit:
r.squaredGLMM(Final_Amp_model1)
# Run pooled model
anova(Final_Amp_model1)
# Pooled slopes model
ls_trend1 <- lstrends(Final_Amp_model1, ~ TemperatureF, var = "BLs")
# Run pooled slopes model
summary(ls_trend1, infer=TRUE)
pairs(ls_trend1, adjust = 'fdr')
# Hz
names(Ghanam_data_trim1)
# BEST MODEL SELECTION:
Final_Hz_model <- lmer(Hz ~ TemperatureF * AreaF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
Final_Hz_model1 <- lmer(Hz ~ TemperatureF * AreaF * BLs + SL + (1 | ID:AreaF:TemperatureF), data = Ghanam_data_trim1)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
anova(Final_Hz_model,Final_Hz_model1)
# Check for assumptions:
shapiro.test(resid(Final_Hz_model))
leveneTest(Hz~ interaction(TemperatureF,AreaF,BLs), Ghanam_data_trim1)
r.squaredGLMM(Final_Hz_model)
r2beta(Final_Hz_model, method = "nsj")
epsilon_squared(Final_Hz_model)
# Run model:
anova(Final_Hz_model)
summary(Final_Hz_model)
# Slopes model
ls_trend <- lstrends(Final_Hz_model, ~ TemperatureF * AreaF, var = "BLs")
# Run slopes model:
summary(ls_trend, infer=TRUE)
pairs(ls_trend, adjust = 'none')
# Pooled model
Final_Hz_model1 <- lmer(Hz ~ TemperatureF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
# Check for pooled model assumptions:
shapiro.test(resid(Final_Hz_model1))
leveneTest(Hz~ interaction(TemperatureF,BLs), Ghanam_data_trim1)
# Pooled model fit:
r.squaredGLMM(Final_Hz_model1)
# Run pooled model
anova(Final_Hz_model1)
# Pooled slopes model
ls_trend1 <- lstrends(Final_Hz_model1, ~ TemperatureF, var = "BLs")
# Run pooled slopes model
summary(ls_trend1, infer=TRUE)
pairs(ls_trend1, adjust = 'none')
# BEST MODEL SELECTION:
Final_St_model <- lmer(St ~ TemperatureF * AreaF * BLs + SL + (1 | ID), data = Ghanam_data_trim1)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
Final_St_model1 <- lmer(St ~ TemperatureF * AreaF * BLs + SL + (1 | ID:AreaF:TemperatureF), data = Ghanam_data_trim1)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
anova(Final_St_model,Final_St_model1)
# Check for assumptions:
shapiro.test(resid(Final_St_model))
leveneTest(St~ interaction(TemperatureF,AreaF,BLs), Ghanam_data_trim1)
grubbs.test(Ghanam_data_trim1$St)
# remove outlier and retest assumptions
Std <- subset(Ghanam_data_trim1, Ghanam_data_trim1$St != '0.583341318')
Final_St_model <- lmer(St ~ TemperatureF * AreaF * BLs + SL + (1 | ID), data = Std)
shapiro.test(resid(Final_St_model))
#	Shapiro-Wilk normality test
# data:  resid(Final_St_model)
# W = 0.98419, p-value = 0.09225
leveneTest(St~ interaction(TemperatureF,AreaF,BLs), Std)
# Model fit:
r.squaredGLMM(Final_St_model)
r2beta(Final_St_model, method = "nsj")
epsilon_squared(Final_St_model)
# Run model:
anova(Final_St_model)
summary(Final_St_model)
# Slopes model
ls_trend <- lstrends(Final_St_model, ~ TemperatureF * AreaF, var = "BLs")
# Run slopes model:
summary(ls_trend, infer=TRUE)
pairs(ls_trend, adjust = 'fdr')
# Pooled model
Final_St_model1 <- lmer(St ~ TemperatureF * BLs + SL + (1 | ID), data = Std)
# Check for pooled model assumptions:
shapiro.test(resid(Final_St_model1))
leveneTest(St~ interaction(TemperatureF,BLs), Std)
# Pooled model fit:
r.squaredGLMM(Final_St_model1)
# Run pooled model
anova(Final_St_model1)
# Pooled slopes model
ls_trend1 <- lstrends(Final_St_model1, ~ TemperatureF, var = "BLs")
# Run pooled slopes model
summary(ls_trend1, infer=TRUE)
pairs(ls_trend1, adjust = 'fdr')
#RAW AS mass scalng
# load data and set factors
DTA <- read.csv(choose.files()) # use file 'slope stats Ghanam div -Nov2023.csv'
gtemp5 <- factor(DTA$gtemp)
gpop5 <- factor(DTA$gpop)
# BEST MODEL SELECTION
JJ1 <-lmer(gvalue ~ gtemp5*gpop5*gmass + (1|gtemp5/gpop5), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
# Warning messages:
# 1: Model failed to converge with 1 negative eigenvalue: -3.3e-08
# 2: In as_lmerModLT(model, devfun) :
# transform data to deal with warning
JJ1 <-lmer(gvalue^3 ~ gtemp5*gpop5*gmass + (1|gtemp5/gpop5), na.action=na.exclude, DTA)
JJ2 <-lmer(gvalue^3 ~ gtemp5*gpop5*gmass + (1|gpop5), na.action=na.exclude, DTA)
# test best model using anova
anova(JJ1,JJ2)
# Check for assumptions:
shapiro.test(resid(JJ1))
leveneTest(gvalue^3 ~ interaction(gpop5,gtemp5), DTA)
grubbs.test(DTA$gvalue^3)
r.squaredGLMM(JJ1)
epsilon_squared(JJ1)
r2beta(JJ1, method = "nsj")
anova(JJ1)
# Slopes model
JL1 <- lstrends(JJ1, ~ gtemp5*gpop5, var="gmass")
# Run slopes model:
summary(JL1, infer=TRUE)
pairs(JL1 , adjust=c("fdr"))
# Pooled model
JJ3 <-lmer(gvalue^3 ~ gtemp5*gmass + (1|gtemp5/gpop5), na.action=na.exclude, DTA)
# Check for pooled model assumptions:
shapiro.test(resid(JJ3))
leveneTest(gvalue^3 ~ gtemp5, DTA)
# Pooled model fit:
r.squaredGLMM(JJ3)
# Run pooled model
anova(JJ3)
# Pooled slopes model
JL4 <- lstrends(JJ3, ~ gtemp5, var="gmass")
# Run pooled slopes model
summary(JL4, infer=TRUE)
pairs(JL4 , adjust=c("fdr"))
# BEST MODEL SELECTION
gtemp6 <- factor(DTA$gtemp1)
gpop6 <- factor(DTA$gpop1)
JU1 <-lmer(gvalue1 ~ gtemp6*gpop6*gmass1 + (1|gtemp6/gpop6), na.action=na.exclude, DTA)
JU2 <-lmer(gvalue1 ~ gtemp6*gpop6*gmass1 + (1|gpop6), na.action=na.exclude, DTA)
# check best model using anova
anova(JU1,JU2)
# Check for assumptions:
shapiro.test(resid(JU1))
leveneTest(gvalue1 ~ interaction(gpop6,gtemp6), DTA)
grubbs.test(DTA$gvalue1)
# Model fit:
r.squaredGLMM(JU1)
r2beta(JU1, method = "nsj")
epsilon_squared(JU1)
# Run model:
anova(JU1)
# Slopes model
JUL1 <- lstrends(JU1, ~ gtemp6*gpop6, var="gmass1")
# Run slopes model:
summary(JUL1, infer=TRUE)
pairs(JUL1 , adjust=c("fdr"))
# Pooled model
JJ4 <-lmer(gvalue1 ~ gtemp6*gmass1 + (1|gtemp6/gpop6), na.action=na.exclude, DTA)
JJ4 <-lmer(gvalue1^2 ~ gtemp6*gmass1 + (1|gtemp6/gpop6), na.action=na.exclude, DTA)
# Check for pooled model assumptions:
shapiro.test(resid(JJ4))
leveneTest(gvalue1^1.3 ~ gtemp6, DTA)
# Pooled model fit:
r.squaredGLMM(JJ4)
# Run pooled model
anova(JJ4)
# Pooled slopes model
JL4 <- lstrends(JJ4, ~ gtemp6, var="gmass1")
# Run pooled slopes model
summary(JL4, infer=TRUE)
pairs(JL4 , adjust=(('fdr')))
# Factors
Gpop2 <- factor(DTA$gpop2)
Gtemp2 <- factor(DTA$gtemp2)
# BEST MODEL SELECTION
Jsmr1 <-lmer(gvalue2 ~ Gtemp2*Gpop2*gmass2 + (1|Gtemp2/Gpop2), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
Jsmr2 <-lmer(gvalue2 ~ Gtemp2*Gpop2*gmass2 + (1|Gpop2), na.action=na.exclude, DTA)
anova(Jsmr1,Jsmr2)
# Check for assumptions:
shapiro.test(resid(Jsmr1))
leveneTest(gvalue2 ~ interaction(Gpop2,Gtemp2), DTA)
grubbs.test(DTA$gvalue2)
# Model fit:
r.squaredGLMM(Jsmr1)
r2beta(Jsmr1, method = "nsj")
epsilon_squared(Jsmr1)
# Run model:
anova(Jsmr1)
# Slopes model
JsmrT1 <- lstrends(Jsmr1, ~ Gtemp2*Gpop2, var="gmass2")
# Run slopes model:
summary(JsmrT1, infer=TRUE)
pairs(JsmrT1 , adjust=c("fdr"))
# Pooled model
Jsmr5 <-lmer(gvalue2 ~ Gtemp2*gmass2 + (1|Gtemp2/Gpop2), na.action=na.exclude, DTA)
# Check for pooled model assumptions:
shapiro.test(resid(Jsmr5))
leveneTest(gvalue2 ~ Gtemp2, DTA)
# Pooled model fit:
r.squaredGLMM(Jsmr5)
# Run pooled model
anova(Jsmr5)
# Pooled slopes model
JsmrT5 <- lstrends(Jsmr5, ~ Gtemp2, var="gmass2")
# Run pooled slopes model
summary(JsmrT5, infer=TRUE)
pairs(JsmrT5 , adjust=c("fdr"))
# Factors
Gpop3 <- factor(DTA$gpop3)
Gtemp3 <- factor(DTA$gtemp3)
# BEST MODEL SELECTION
Jcot1 <-lmer(gvalue3 ~ Gtemp3*Gpop3*gmass3 + (1|Gtemp3/Gpop3), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
Jcot2 <-lmer(gvalue3 ~ Gtemp3*Gpop3*gmass3 + (1|Gpop3), na.action=na.exclude, DTA)
# fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
# check best model using anova
anova(Jcot1,Jcot2)
#Check for assumptions:
shapiro.test(resid(Jcot1))
leveneTest(gvalue3 ~ interaction(Gpop3,Gtemp3), DTA)
grubbs.test(DTA$gvalue3)
# Model fit:
r.squaredGLMM(Jcot1)
r2beta(Jcot1, method = "nsj")
epsilon_squared(Jcot1)
# Run model:
anova(Jcot1)
# Slopes model
JcotT1 <- lstrends(Jcot1, ~ Gtemp3*Gpop3, var="gmass3")
# Run slopes model:
summary(JcotT1, infer=TRUE)
pairs(JcotT1 , adjust=c("fdr"))
# Pooled model
Jcot5 <-lmer(gvalue3 ~ Gtemp3*gmass3 + (1|Gtemp3/Gpop3), na.action=na.exclude, DTA)
Jcot5 <-lmer(gvalue3^-1 ~ Gtemp3*gmass3 + (1|Gtemp3/Gpop3), na.action=na.exclude, DTA)
# Check for pooled model assumptions:
shapiro.test(resid(Jcot5))
leveneTest(gvalue3^-1 ~ Gtemp3, DTA)
# Pooled model fit:
r.squaredGLMM(Jcot5)
# Run pooled model
anova(Jcot5)
# Pooled slopes model
JcotT9 <- lstrends(Jcot5, ~ Gtemp3, var="gmass3")
# Run pooled slopes model
summary(JcotT9, infer=TRUE)
pairs(JcotT9 , adjust=c("fdr"))
